// pages/timetable/timetableIndex/timetableIndex.js
import { TimetableModel } from "../../../api/api-timetable/timetableModel.js";
import { getWeekDay } from "../../../utils/index.js"
const timetableModel = new TimetableModel();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    spotMap: {},
    classStartTime: "", // 开始时间
    classEndTime: "", // 结束时间
    pageNum: 1,
    total: 0,
    tableData: [],
    triggered: false,
    isNodata: false, // 判断时候有数据，默认false  有数据
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad(options) {
    // await this.getOrderDateList()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  // 获取有标记的日期
  async getOrderDateList(classStartTime, classEndTime) {
    const spotMap = await timetableModel.getOrderDateListApi({ classStartTime: classStartTime, classEndTime: classEndTime })
    this.setData({
      spotMap
    })
  },

  // 获取数据
  async getOrderList() {
    const res = await timetableModel.getOrderListApi({ pageNum: this.data.pageNum, pageSize: 10, classStartTime: this.data.classStartTime, classEndTime: this.data.classEndTime })
    if (res.rows.length > 0) {
      res.rows.forEach(item => {
        item["week"] = getWeekDay(item.classDate)
      })
    }
    let datas = this.data.tableData;
    datas.push(...res.rows);
    this.setData({
      tableData: datas,
      total: res.total
    })
    if (this.data.tableData.length > 0) {
      this.setData({
        isNodata: false
      })
    }
    else {
      this.setData({
        isNodata: true
      })
    }
  },

  // 上拉加载
  getMoreData() {
    if (this.data.total > this.data.tableData.length) {
      this.setData({
        pageNum: this.data.pageNum + 1
      })
      this.getOrderList()
    }
  },
  // 下拉刷新
  refreshData() {
    this.setData({
      triggered: false,
      pageNum: 1,
      tableData: []
    })
    this.getOrderList()
  },

  // 按天选择
  async selectDate(options) {
    this.setData({
      pageNum: 1,
      tableData: [],
      classStartTime: options.detail.classStartTime,
      classEndTime: options.detail.classEndTime
    })
    await this.getOrderList()
  },

  // 按周选择
  async selectWeek(options) {
    this.setData({
      pageNum: 1,
      tableData: [],
      classStartTime: options.detail.classStartTime,
      classEndTime: options.detail.classEndTime
    })
    // 获取有标记的日期
    await this.getOrderDateList(this.data.classStartTime, this.data.classEndTime);
    // 获取数据
    await this.getOrderList()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})